package com.lordtan.persistance.dao;

import java.util.List;
import java.util.Map;

/**
 * 通用DAO
 * @author lordtan
 * @date 2013-1-1
 */
public interface IcommonDao {
  
	/**
	 * 根据ID查询实体
	 * @param claz
	 * @param id
	 * @return
	 */
	@SuppressWarnings("rawtypes")
	public Object findById(Class claz,String id);
	
	/**
	 * 根据jpql查询结果
	 * @param jpql java persistent query language
	 * @param parameter 参数
	 * @return
	 */
	@SuppressWarnings("rawtypes")
	public List queryByJpql(String jpql,Map<String,Object> parameter);
	
	/**
	 * 批量插入实体
	 * @param entites
	 * @return 成功返回1 失败返回-1
	 */
	public int insertEntities(List<Object> entites);
	
	/**
	 * 插入单个实体
	 * @param entity
	 * @return 成功返回1 失败返回-1
	 */
	public int insertEntity(Object entity);
	
	/**
	 * 批量更新实体
	 * @param entites
	 * @return 成功返回1 失败返回-1
	 */
	public int updateEntites(List<Object> entites);
	
	/**
	 * 更新单个实体
	 * @param entity
	 * @return
	 */
	public int updateEntity(Object entity);
	
	/**
	 * 删除实体
	 * @param entites
	 * @return 成功返回1 失败返回-1
	 */
	public int removeEntites(List<Object> entites);
	
	/**
	 * 根据id删除实体
	 * @param ids
	 * @param claz
	 * @return
	 */
	public int removeEntites(List<String> ids,@SuppressWarnings("rawtypes") Class claz);
}
